/**
 * JWT测试脚本
 * 用于验证JWT令牌的生成和验证功能
 */

// 加载环境变量
require('dotenv').config();

const { generateToken, verifyToken } = require('../src/utils/jwt');
const { logInfo, logError } = require('../src/logger');

async function runJwtTest() {
  try {
    logInfo('开始JWT测试...');
    
    // 测试数据
    const testPayload = {
      userId: 1,
      email: 'test@example.com',
      uuid: 'test-uuid'
    };
    
    // 生成令牌
    logInfo('生成JWT令牌...');
    const token = generateToken(testPayload);
    logInfo('令牌生成成功', { token });
    
    // 验证令牌
    logInfo('验证JWT令牌...');
    const decoded = verifyToken(token);
    logInfo('令牌验证成功', { decoded });
    
    // 测试无效令牌
    logInfo('测试无效令牌...');
    const invalidToken = 'invalid.token.here';
    const invalidResult = verifyToken(invalidToken);
    logInfo('无效令牌测试结果', { result: invalidResult });
    
    logInfo('JWT测试完成');
  } catch (error) {
    logError('JWT测试出错', { error: error.message });
  }
}

// 如果直接运行此脚本，则执行测试
if (require.main === module) {
  runJwtTest();
}

module.exports = {
  runJwtTest
};